package com.bestcem.xm.om.dao.mapper;

import com.bestcem.xm.om.entity.OmUserIndustry;
import org.apache.ibatis.annotations.Mapper;

import java.util.List;

/**
 * @author zq.ding <zq.ding@idiaoyan.com>
 * @version v1.0
 * @date 2021/12/27 16:15
 */
@Mapper
public interface OmUserIndustryMapper {
    /**
     * 查找OmUser列表
     *
     * @param start 起始页
     * @param size  页面大小
     * @return OmUser列表
     */
    List<OmUserIndustry> listAll(Integer start, Integer size);

    /**
     * 根据om用户id查找行业信息
     *
     * @param omUserId
     * @return java.util.List<com.bestcem.xm.om.entity.OmUserIndustry>
     * @author zhangfeng <feng.zhang@idiaoyan.com>
     * @date 2022/4/2 20:14
     */
    List<OmUserIndustry> findByOmUserId(String omUserId);

    /**
     * 根据行业id获取相关行业列表
     *
     * @param industryId
     * @return
     * @auther xuan.yang@idiaoyan.com
     * @date 2021/12/29 16:35
     */
    List<OmUserIndustry> listByIndustryId(String industryId);

    /**
     * 根据查询条件获取列表
     *
     * @param userIndustry
     * @return
     * @auther xuan.yang@idiaoyan.com
     * @date 2021/12/30 15:54
     */
    List<OmUserIndustry> listByCondition(OmUserIndustry userIndustry);

    /**
     * 根据id列表
     * @param ids
     * @return
     */
    List<OmUserIndustry> listByIds(List<String> ids);

    /**
     * 批量插入
     *
     * @param omUserIndustries
     * @return
     */
    void batchSave(List<OmUserIndustry> omUserIndustries);

    /**
     * 根据用户id删除记录
     *
     * @param userId
     * @return
     */
    int deleteByUserId(String userId);

    /**
     * 判断om用户是否有该行业的权限
     *
     * @param omUserId
     * @param industryId
     * @return boolean
     * @author zhangfeng <feng.zhang@idiaoyan.com>
     * @date 2022/1/18 17:43
     */
    long existsByOmUserIdAndIndustryId(String omUserId, String industryId);

    /**
     * listByUserIds
     * @param omUserIds
     * @return
     */
    List<OmUserIndustry> listByUserIds(List<String> omUserIds);

    /**
     * 根据行业id查询一条记录
     * @param industryId
     * @return
     */
    OmUserIndustry findOneByIndustryId(String industryId);
}
